//2. Symbol.toPrimitive
//是一个内置的 Symbol 值，它是作为对象的函数值属性存在的，当一个对象转换为对应的原始值时，会调用此函数。
//一个将对象转化为基本数据类型的方法。

/** case1 */
/*let obj1 = {}
console.log(obj1 * 1); //NaN

let obj2 = {
  [Symbol.toPrimitive](type) {
    console.log(type); //number
    return 123; //123
  },
};
console.log(obj2 * 1); //123*/


/** case2 */
let obj1 = {}
console.log(obj1 + 1); //[object Object]1

let obj2 = {
  [Symbol.toPrimitive](type) {
    console.log(type); //default
    return 123; //123
  },
};
console.log(obj2 + 1); //124

let obj3 = {
  [Symbol.toPrimitive](type) {
    console.log(type); //default
    return '123'; //123
  },
};
console.log(obj3 + '1'); //1231
